home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / UTILFILE / JLOCK.LZH / JLOCK.DOC < prev    next >
Text File  |  1989-01-02  |  26KB  |  592 lines

  1.                                JLOCK.EXE
  2.  
  3.           version 0.1a (c) copy right 1988 All Rights Reserved
  4.  
  5.           Have you every typed "DEL *.COM" and then remembered that
  6.           you accidentally deleted your "VITAL!XY.COM" as well? or
  7.           renamed an important file somewhere inside a "RENAME *.TXT
  8.           *.TMP" by mistake? or executed a program which you really
  9.           shouldn"t have? or opened/copied a file which you did not
  10.           meant to? or did your/shareware/freeware program
  11.           accidentally delete files it shouldn"t have? (and your last
  12.           back up was done sometime last year).
  13.  
  14.           This is a memory resident utility which controls the access
  15.           to a list of file names so that you can control whether
  16.           certain files may be opened, created, executed, deleted,
  17.           renamed or allowed to change file mode.  Since files must be 
  18.           opened before it can be copied, this controls file copying 
  19.           also.
  20.  
  21.           A user written list of files (in a file which you must
  22.           called JLOCK) along with access types allowed following it
  23.           will be read in, every time you run JLOCK.EXE.  The list
  24.           can have up to 200 file names and the settings can be
  25.           viewed any time from the pop up menu.  This program itself
  26.           can come out from memory any time you run big programs
  27.           which require almost all of the 640 kb available on a PC
  28.           "2" or the 544 kb on the older PC "1" without having to
  29.           reboot your computer.
  30.  
  31.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  32.  
  33.           If you simply type
  34.  
  35.           JLOCK<ntr>
  36.  
  37.           then you get the help screen only.  JLOCK.EXE will not
  38.           become memory resident, nor will it remove a copy of itself
  39.           if already in memory.
  40.  
  41.           This mode is designed to remind you of some (not all) of
  42.           the parameters available when you run JLOCK.EXE without
  43.           having to refer to this document.
  44.  
  45.           In case you're wondering about the wastefulness of storing
  46.           such mini-helps in the program, this and many other
  47.           messages stored in JLOCK.EXE are overwritten by your list
  48.           of file names when JLOCK.EXE becomes memory resident so
  49.           that the memory space is not wasted.
  50.  
  51.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  52.  
  53.           To run this, simply type
  54.  
  55.           JLOCK RUN<ntr>
  56.  
  57.           and end it with an <ENTER> or <ntr> or <cr> or anything
  58.           else you want to call the carriage return.  This document 
  59.           and all documents by my group uses the "<ntr>" format.
  60.           Just the letter "r" in "run" will work also.  The <alt> and
  61.           "M" will pop up the menu in case you need to see which
  62.           files are J"lock"ed and what access rights are granted to
  63.           each file.  The pop up menu itself has a mini-help of its
  64.           own:  Just type <f1> as is stated on the menu.
  65.  
  66.           You can load any other memory resident program AFTER the
  67.           JLOCK.EXE to be removed along with JLOCK.EXE, provided that
  68.           the other programs have my name mentioned somewhere or it
  69.           mentions that this program will wipe out that particular
  70.           program also.  Do not run any other memory resident program
  71.           after JLOCK.EXE if not made by this group or specifically
  72.           mentions that JLOCK.EXE will wipe out that software also.
  73.  
  74.           If you might wipe JLOCK.EXE from memory by accident, lock
  75.           up JLOCK.EXE with the "L" parameter at the command line so
  76.           that JLOCK.EXE cannot come out and destroy the memory map
  77.           of your system.
  78.  
  79.           With the default above, there is no need to type a password
  80.           to pop up the pop up menu.  The program can be wiped from
  81.           memory, and a chirping sound will be generated when you try
  82.           to (O)pen, (C)reate, (E)xecute, (D)elete, re(N)ame or
  83.           change file (M)ode for the list of file names you
  84.           specified.
  85.  
  86.           Although there is no "C"opy option mentioned, the process
  87.           of copying a file requires that a file be opened first, so
  88.           setting a file so that it cannot be opened, automatically
  89.           prevents it from being copied as well.
  90.  
  91.           You must provide a file called "JLOCK" without any
  92.           extension.  This file must contain a list of file names and
  93.           the letter code for accesses which you allow:
  94.  
  95.           To allow opening (copying) that file, follow its name with "o".
  96.           To allow creating a file by that name, follow its name with "c".
  97.           To allow execution of a program, follow its name with "e".
  98.           To allow deletion of a file, follow its name with "d".
  99.           To allow renaming of a file, follow its name with "n".
  100.           To allow a file to change mode (to read only, system file,
  101.           etc using various utilities available), follow its name
  102.           with "m".
  103.  
  104.           For example, if the file has the following list
  105.  
  106.  
  107.           wordproc.exe e n<ntr>
  108.           act o d<ntr>
  109.           78 n<ntr>
  110.           12345678.com n<ntr>
  111.           keep<ntr>
  112.  
  113.  
  114.           then "wordproc.exe" is allowed to be executed and may be
  115.           renamed to something else.  However, a file of this name
  116.           cannot be created, deleted, opened, or allowed to change
  117.           file mode.  This means that if you type "DEL WORD*.EXE",
  118.           then every ".EXE" program which begins with "WORD" will be
  119.           deleted, except for "wordproc.exe", since this name is not
  120.           given access for deletion.  Instead, a short beep (by
  121.           default) signals that an attempt to delete a protected file
  122.           occurred.
  123.  
  124.           Similarly, the "act" file is allowed to be Opened so that
  125.           you can use your word processor to read and write it, and
  126.           you can even Delete it.  But you cannot reName it to
  127.           something else, nor change file Mode to read-only.  The
  128.           file called "78" cannot be reNamed but you can do anything
  129.           else.  The file called "12345678.com" cannot be Executed
  130.           unless you intentionally reName it to some other name which
  131.           is not in the list.  The presence of the "keep" file will be
  132.           display when you type DIR but cannot be typed out to screen
  133.           or deleted or changed in any way because no access is given
  134.           for any function.
  135.  
  136.           Once you wipe out JLOCK.EXE from memory, then the above
  137.           list of files will behave as always, ready to be deleted or
  138.           renamed or executed by a slipperly finger or two.
  139.  
  140.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  141.  
  142.           To lock this program so that it will not come out of
  143.           memory, type
  144.  
  145.           JLOCK L<ntr>
  146.  
  147.           If you have other commands entered at this command line, it
  148.           is a good practice to separate the commands with at least
  149.           one space.  There is no need to enter the Run command in
  150.           this case.  If you enter the Run command, everything
  151.           afterwards is ignored.  In other words, "JLOCK R L" will
  152.           run JLOCK.EXE but will not lock the program from wiping
  153.           itself out of memory.
  154.  
  155.           If another program which can wipe itself was loaded BEFORE
  156.           JLOCK.EXE, then this feature will not work since the other
  157.           program's feature to wipe itself as well and this program
  158.           will take precedence.
  159.  
  160.           Note that there are several high level languages available
  161.           on the market with features to make programs which can
  162.           become memory resident and also wipe itself out also. 
  163.           However, none of those types of programs work unless it is
  164.           the last memory resident program you loaded.  On top of 
  165.           that, those types of programs take up an awful lot of 
  166.           memory, while accomplishing relatively little.
  167.  
  168.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  169.  
  170.           To prevent the chirping sound (No-sound) when your program
  171.           or DOS tries to use a feature which is turned off, type
  172.  
  173.           JLOCK N<ntr>
  174.  
  175.           In this case, you do not have to type the "R" parameter to
  176.           run this.
  177.  
  178.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  179.  
  180.           To wipe this program and any other program ran after this
  181.           from memory,
  182.  
  183.           JLOCK W<ntr>
  184.  
  185.           DOS is given back the memory used by this program and any 
  186.           other program loaded after this.  This allows memory hungry 
  187.           program to be ran without your having to reboot your 
  188.           computer system.
  189.  
  190.           Although this feature is only designed to work with other 
  191.           programs made by my group, it can easily be expanded to work 
  192.           with ANY OTHER programs.  Care to have it expanded?  I'd 
  193.           like to hear from you.
  194.  
  195.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  196.  
  197.           To prevent the pop up menu from popping up unless you know
  198.           the password, type
  199.  
  200.           JLOCK Ppassword<ntr>
  201.  
  202.           All letters after the letter "p" until a space, tab or the
  203.           end of a line will be taken as the password.  Although the
  204.           first letter "P" to indicate that the next line to follow
  205.           is the password itself can be in capital or small letter,
  206.           the password itself must match each capital or small letter
  207.           you type at the pop up prompt.  So if your password is
  208.           "Cathy", then using "cathy" or "cAthy" at the pop up prompt
  209.           for a pass will not work.  The password may be up to 78
  210.           characters long, including any character from chr$(33)
  211.           through chr$(255).
  212.  
  213.           If you literally type
  214.  
  215.           JLOCK pcAThy<ntr>
  216.  
  217.           to run JLOCK.EXE, then when the prompt to enter the
  218.           password appears, you must literally type the "cAThy" as is
  219.           to access the pop up menu.
  220.  
  221.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  222.  
  223.           If a password is required, then you are given a default of
  224.           three times to type the proper password.  To change the
  225.           number of tries allowed to 2, type
  226.  
  227.           JLOCK T2<ntr>
  228.  
  229.           The default is to allow three tries.  Any value over 250 is
  230.           ignored, though any value over five or six doesn't make
  231.           much sense.
  232.  
  233.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  234.  
  235.           The pop up by default will appear on the left top column
  236.           and row, in other words on the column one and row one.  To
  237.           change the default row and column of the left top corner of
  238.           the pop up menu, type
  239.  
  240.           JLOCK -5 ^8
  241.  
  242.           The top row is set for row five and the left column is set
  243.           for column eight.  If only the row value exists as in
  244.  
  245.           JLOCK -4
  246.  
  247.           Then the top row is set for row five and the left column
  248.           takes on the default value of one.  Similarly, if the
  249.           column value exists but no row value is given, then row
  250.           value is set for one by default.
  251.  
  252.           The row value must be 35 or less and the column value must
  253.           be 32 or less.  If you set the row value for anything above
  254.           19 on a CGA (color graphic adaptor) or a monochrome adaptor
  255.           equipped monitor, the pop up menu will not appear properly. 
  256.           The excessively large value allowed for the row is for EGA
  257.           and VGA equipped monitors set to display 43/50 lines.
  258.  
  259.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  260.  
  261.           If you have a color monitor, or at least a monochrome/amber 
  262.           monitor, you can try a pop up other than the default black 
  263.           letter on white background.  Of course, even with a green 
  264.           phosphor black/white monitor, you can try this to avoid 
  265.           screen burn outs.
  266.  
  267.           JLOCK A7<ntr>
  268.  
  269.           This sets the screen for white letter on black background.  
  270.           Of course, on amber/green monitor, it appears as 
  271.           amber/green.
  272.  
  273.           The default is 112 for reverse letter.
  274.  
  275.           If you try
  276.  
  277.           JLOCK A0<ntr>
  278.  
  279.           then the default of 112 is used, because attribute = 0 
  280.           means black letter on black background, which cannot be 
  281.           seen.  But 'c119' for white letters on white background is
  282.           acceptable, if for some reason the pop up menu should not be
  283.           visible.
  284.  
  285.           To change the color on a color monitor to blue letters on
  286.           black, type
  287.  
  288.           JLOCK A1
  289.  
  290.           The values are the following for letter colors.  To get the
  291.           color for the background, multipy by 16 and add to the
  292.           letter color value.
  293.  
  294.           0     black                   8       gray
  295.           1     blue                    9       light blue
  296.           2     green                   10      light green
  297.           3     cyan                    11      light cyan
  298.           4     red                     12      light red
  299.           5     magenta                 13      light magenta
  300.           6     brown                   14      yellow
  301.           7     white                   15      bright white
  302.  
  303.           For example, to get blue letters on green background, use
  304.  
  305.           JLOCK A33<ntr>
  306.  
  307.           since green background is 2 * 16 and blue letter is 1. 
  308.           ( 2 * 16 + 1 = 33 )
  309.  
  310.           On IBM color monitors, the distinction is clear.  On older
  311.           NEC MultiSync and similar monitors, the intensity control
  312.           has to be kept above a certain threshhold before they
  313.           become distinct.
  314.  
  315.           On monochrome, the black letter on white background default
  316.           is recommended.  Many combinations produce non-displaying 
  317.           characters.
  318.  
  319.           If you have Hercules' RAM Font or IBM EGA/VGA with expanded 
  320.           character set beyond 256, then this may produce unusual
  321.           effects with the font displayed reflecting the color
  322.           combinations.  Be careful if you have these cards.
  323.  
  324.           The reason why this is called an "A"ttribute, rather than a 
  325.           "C"olor parameter is because on non-color monitors, this 
  326.           controls whether the letter is regular, high-intensity, 
  327.           reverse, blinking etc.  And none of these are in color.
  328.  
  329.  
  330.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  331.  
  332.  
  333.  
  334.                          PROMPTS AND MESSAGES
  335.  
  336.           =-=-=
  337.           JLOCK:  Enter password or <esc>
  338.           =-=-=
  339.  
  340.           When the pop up menu is protected, this message will appear
  341.           to ask you to enter the password.  When you type the
  342.           password, the letters do not appear on screen, but
  343.           backspacing will correct any mistyping if you noticed it.
  344.  
  345.           End the password with a carriage return or type the escape
  346.           key to get out any time.  You are given a default of three
  347.           tries to enter the proper password.  And if you don't make
  348.           it, then the pop up menu will not appear.
  349.  
  350.           =-=-=
  351.           Sorry, I cannot remove JLOCK because it is not in memory
  352.           =-=-=
  353.  
  354.           If you tried to wipe JLOCK.EXE from memory when you did not
  355.           have one in memory, then you get this message.
  356.  
  357.           =-=-=
  358.           You don't have to do it, JLOCK is already in memory
  359.           =-=-=
  360.  
  361.           If you tried to run JLOCK.EXE when JLOCK.EXE was already in
  362.           memory, then you get this message.
  363.  
  364.         =-=-=
  365.         Internal memory organization is destroyed !!!
  366.         I recommend that you warm reBOOT WITH THE CTL-ALT-DEL key combination
  367.         as soon as possible since the behavior of the machine is no longer
  368.         predictable.  Do not ignore this error message!
  369.         =-=-=
  370.  
  371.           You will get this long message if you tried to wipe JLOCK
  372.           from memory and something unexpected happened.  This can
  373.           happen often if you were running BASIC to poke values into
  374.           memory without checking to see if you are allowed to do so
  375.           by consulting with DOS.  JLOCK itself consults with DOS and
  376.           should not by itself cause this error.
  377.  
  378.           =-=-=
  379.           JLOCK file with list of file names to protect not found
  380.           =-=-=
  381.  
  382.           JLOCK.EXE could not find the file called JLOCK with the
  383.           list of file names and access codes in the diskette or
  384.           subdirectory you were in.  Since this program's pop up menu
  385.           doesn't allow you to enter a list of file names, this
  386.           JLOCK.EXE must have a list of file names already present.
  387.  
  388.           =-=-=
  389.           JLock was locked and not intended to come out of memory
  390.           =-=-=
  391.  
  392.           The "L" command parameter was specified to prevent
  393.           JLOCK.EXE from being accidentally removed from memory by
  394.           typing "JLOCK W" at the DOS prompt.
  395.  
  396.           =-=-=
  397.           There is not enough memory available to run this program
  398.           over another program.  Sorry.
  399.           =-=-=
  400.  
  401.           JLOCK.EXE noticed that there is less than 32 kilobytes of
  402.           free memory available.  Since JLOCK.EXE will use about half
  403.           of this memory, there is not enough memory left over to run
  404.           any useful program over JLOCK.EXE.  Under this condition,
  405.           JLOCK.EXE will not become memory resident.
  406.  
  407.           =-=-=
  408.           |v.0.1a=Dr=Masaaki=Sawada=&=Assoc.======================|
  409.           |JLOCK and any other program(s) made by I and/or assoc. |
  410.           |was/were successfully removed from memory.             |
  411.           |=======================================================|
  412.           =-=-=
  413.  
  414.           This is the normal message displayed when JLOCK.EXE was
  415.           successfully wiped from memory.
  416.  
  417.           =-=-=
  418.           |===============DR.J.LOCK==============|
  419.           |file      xxxx           allows       |
  420.           |                                      |
  421.           |                                      |
  422.           |                                      |
  423.           |v=0.1========================<f1>=help|
  424.           =-=-=
  425.  
  426.           This is the appearance of the pop up menu with the "xxxx"
  427.           representing the name of the file itself.  Type the page
  428.           up/down keys to look at the files and access types allowed. 
  429.           Type the escape key to get out of the pop up.
  430.  
  431.           The types of accesses you allowed will appear as the word
  432.           "open" if the "o" parameter followed the file name in the
  433.           list, as the word "rename" if the "n" parameter followed
  434.           the file name in the list, etc.
  435.  
  436.           The screen is set for the reverse black letter on white
  437.           background format as default.  To change it, use the 
  438.           "A"ttribute parameter on the command line mentioned above.
  439.  
  440.           Since the pop up can be protected by a password, would you
  441.           like to have the ability to change access types from this
  442.           menu?  I'm always open to new suggestions.
  443.  
  444.  
  445.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  446.  
  447.                             TECHNICAL CHATS
  448.  
  449.           Although this program relies upon the features present in
  450.           DOS 2 and cannot work from DOS 1, this program intercepts
  451.           the DOS 1 functions as well as the DOS 2 functions.  The
  452.           reason is because even DOS 3.3 (the latest as of this
  453.           writing) relies upon features present in the original DOS 1
  454.           for many chores, including opening files, deleting files 
  455.           etc.
  456.  
  457.           Why intercept DOS 2 functions?  DOS 2 has many features of
  458.           DOS 1 duplicated at a higher level.  As a result, many 
  459.           programs rely exclusively on DOS 2 functions to delete or
  460.           read a file, rather than use the comparable DOS 1
  461.           functions.
  462.  
  463.           The double interception is used so that you cannot
  464.           accidentally delete a vital file from DOS or from a program
  465.           which allows access to DOS functions like deletion of
  466.           files.
  467.  
  468.           Starting with DOS 3.0, there are two new ways to make
  469.           files:  The "create unique file" function is not intercepted
  470.           since it is useful only for making temporary files which
  471.           are to be deleted or renamed anyway.  The "create new file"
  472.           function is not intercepted since this function fails if
  473.           the file name already existed, avoiding the possibility of
  474.           overwriting a pre-existing file by the same name.
  475.  
  476.           If you or a program then tries to delete or rename this
  477.           file, it can still be locked if the list of file names (in
  478.           the JLOCK file without any extension) happens to have the
  479.           name and no access is given for deletion or renaming of
  480.           this file.  Like to have an option to use a file name other 
  481.           than JLOCK without any extension?  I'm all ears.
  482.  
  483.           If you happen to be a local BBS operator, this program can
  484.           lock up your file with the list of passwords.  Why?  Because
  485.           some recent time bomb programs display fancy pictures on
  486.           screen, while copying the file with the list of passwords
  487.           to another location so that that file can be downloaded
  488.           later by the person who uploaded the time bomb.  Clever, but 
  489.           not clever enough.
  490.  
  491.           This program is not meant to be an anti-virus program, but
  492.           this can serve as a flu-shot against some clever virus
  493.           programs coming out.
  494.  
  495.           If you're looking for a program which will allow you to 
  496.           protect each program with an automatic password protection, 
  497.           coming up soon on CompuServe will be a program called 
  498.           KONTROL.EXE.
  499.  
  500.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  501.  
  502.           Local BBS sysops and software distributors may distribute
  503.           this software and document for free or a nominal charge. 
  504.           You are not allowed to make unauthorized modification to
  505.           the program prior to redistribution, except for spelling
  506.           mistakes or to change Canadian English for American or
  507.           other forms of languages on this documentation.
  508.  
  509.           =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  510.  
  511.           All products and names mentioned are Trademarks or
  512.           Registered Trademarks of their respective corporations or
  513.           companies.
  514.  
  515.           All enclosed programs, documents and other files are
  516.           provided AS IS, without any warranty, expressed or implied,
  517.           including but not limited to fitness for a particular
  518.           purpose.
  519.  
  520.           If you find that this does not work in your machine, we
  521.           would like to know exactly what happened.  With enough
  522.           information, including where the cursor was, what appeared 
  523.           on screen, which DOS you used, which monitor/video-card,
  524.           etc, we may be able to make it work in your computer.
  525.  
  526.           A contribution of $10 US/Canadian is appreciated if you
  527.           find this useful, or $20 for an improved one as it comes out. 
  528.           (That's $20 Cdn if you're in Canada and $20 U.S. for U.S & 
  529.           others.)
  530.           Unless you specify otherwise, you will get a 5-1/4" 360 kb
  531.           diskette.  And if you only specify 3-1/2", it will be formatted
  532.           as 360kb/720kb on either a 720kb drive or a 1.44Mb drive.
  533.           Your negative criticisms are as welcome as your positive ones.
  534.  
  535.           If you suggested improvements or reported bugs, then your 
  536.           copy will be sent to you after the modification.
  537.  
  538.  
  539.           NAME OF THE PROGRAM:
  540.           JLOCK.EXE
  541.  
  542.           PURPOSE OF THIS PROGRAM:
  543.           This program lets you prevent files from being opened 
  544.           (copied), deleted, renamed or changed in file attribute such 
  545.           as read-only, hidden etc.
  546.  
  547.  
  548.           my old forwarding address was
  549.  
  550.           Dr. Masaaki Sawada
  551.           University of Waterloo, Faculty of Science
  552.           Waterloo, Ontario  Canada  N2L 3G1
  553.  
  554.  
  555.           the present address (SEE BOTTOM) is
  556.  
  557.  
  558.           Dr. Masaaki Sawada
  559.           Lady Davis Institute for Medical Research,
  560.           Sir M. B. Davis Jewish General Hospital,
  561.           3755 Chemin Cote Ste-Catherine, 
  562.           Montreal, Quebec, 
  563.           Canada  H3T 1E2
  564.  
  565.  
  566.           The institute name is given instead of home address(es) to
  567.           lower the chances that any mail is delivered to a wrong
  568.           address (a common occurrence).  However, no institute time
  569.           nor equipment was used to write this program or document.
  570.  
  571.  
  572.           +-+-+-+-+-+-+-+ SWEATING OVER THE ADDRESSES? +-+-+-+-+-+-+
  573.  
  574.           After June - October 1989, or even now, if you're frustrated 
  575.           by the cumbersome and ever shifting addresses, forward 
  576.           letters to
  577.  
  578.           c/o  LCS
  579.                P.O. Box 956
  580.                Outremont, Quebec
  581.                Canada  H2V 4R8
  582.  
  583.  
  584.           This doesn't change.  And boy, is it short.  (LCShort is an 
  585.           interesting macro key program, and you'll soon hear about an 
  586.           equally interesting macro key program called CTSYND on
  587.           CompuServe in a month or two, I hope.)
  588.  
  589.           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  590.  
  591.  
  592.